Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 13, 2026

This PR contains the following updates:

Package Change Age Confidence
eslint-plugin-better-tailwindcss ^3.7.10^4.0.0 age confidence

Release Notes

schoero/eslint-plugin-better-tailwindcss (eslint-plugin-better-tailwindcss)

v4.0.2

Compare Source

compare changes

Fixes
  • enforce-canonical-classes: removal of unrelated classes (#​309)
  • enforce-consistent-variable-syntax: Support custom css functions (#​308)
  • Config types (#​310)

v4.0.1

Compare Source

compare changes

Fixes
  • Disallow extra properties in rule options (valibot schemas) (#​295)
  • Configuration warnings getting lost (#​297)
❤️ Contributors

v4.0.0

Compare Source

compare changes

This version includes a major rewrite of the internal architecture, improving performance and maintainability, resolving long-standing issues, and preparing the codebase for the future and for oxlint.

New Features
  • New rule: enforce-canonical-classes (#​232)
  • New options for enforce-consistent-class-order to sort "component classes" and "unknown classes" (#​263)
    • detectComponentClasses: boolean
    • componentClassOrder: "asc" | "desc" | "preserve"
    • componentClassPosition: "start" | "end"
    • unknownClassOrder: "asc" | "desc" | "preserve"
    • unknownClassPosition: "start" | "end"
  • Added strictness: "loose" option to enforce-consistent-line-wrapping to improve interoperability with prettier (#​260)
  • Better Performance
  • Oxlint support

⚠️ Breaking Changes

First of all, the minimum required Node.js version is has changed to support v23.0.0, v22.12.0, v20.19.0 to support require(esm)

  • This made it possible to remove the CommonJS build (#​264)

Some rules have been renamed to better reflect their intentions:

  • Renamed rule no-unregistered-classes to no-unknown-classes
  • Renamed rule sort-classes to enforce-consistent-class-order
  • Renamed rule multiline to enforce-consistent-line-wrapping

The rule recommendations have been updated to enable new rules by default. Check the updated rule recommendations for more information.


For some rules, the options have been renamed or changed:

  • Options for better-tailwindcss/enforce-consistent-variable-syntax have been renamed to shorthand and variable.
  • The default for enforce-consistent-important-position is now always recommended.
  • Renamed the improved sorting order for enforce-consistent-class-order to strict (#​245)
    • improved is no longer the default option as most people expect the order to match the official order from tailwind.
    • the improved order got renamed to strict to better describe its intentions.
    • the logic of the strict order has changed:
      • Classes that share the same base variants get grouped together.
      • Classes with less variants come before classes with more variants.
      • Classes with arbitrary variants come last.
  • The enforce-consistent-line-wrapping rule now groups variants more strictly. Previously it only grouped classes by their first variant. Now all variants are ordered correctly.

The configs have been renamed and updated to match the recommended shape of ESLint.

  • Renamed configs (#​244)
    • The following configs are now exposed:
      • recommended
      • recommended-warn
      • recommended-error
      • stylistic
      • stylistic-warn
      • stylistic-error
      • correctness
      • correctness-warn
      • correctness-error
      • legacy-recommended
      • legacy-recommended-warn
      • legacy-recommended-error
      • legacy-stylistic
      • legacy-stylistic-warn
      • legacy-stylistic-error
      • legacy-correctness
      • legacy-correctness-warn
      • legacy-correctness-error
    • Please check the updated Parser Documentation to see the recommended way to set up the plugin with your parser.

Other changes:

  • Function getDefaultIgnoredUnregisteredClasses() has been removed.
  • Removed rule regex matchers
  • Preserve normal quotes whenever possible (#​246)

Here is the full list of changes in this version:

Features
  • New rule: enforce-canonical-classes (#​232)
  • Oxlint support (#​284
  • Add strictness: "loose" option to enforce-consistent-line-wrapping (#​260)
  • Add settings option to configure messageStyle (#​276)
  • angular: Support bound attribute classes (#​277)
  • svelte: Support class directive (#​278)
Fixes
  • Don't match attribute values for bound attribute names (#​291)
  • Correctly override shared settings with rule options (#​289)
  • Invalid variant grouping order (#​282)
  • Ignore variants in custom component classes (#​258)
  • Angular line wrapping (#​259)
Refactors
  • Deprecate /api/ path for imports (#​281)
  • Update rule recommendations (#​280)
Documentation
  • Add detectComponentClasses to settings (388103e)
  • Add attribute matcher example (#​272)
  • Improve configuration guide (bd873ea)
⚠️ Breaking Changes
  • ⚠️ Ignore indexed access keys (#​292)
  • ⚠️ Update rule recommendations (#​280)
  • ⚠️ Remove separate CommonJS build (#​264)
    Minimum Node.js version to v23.0.0, v22.12.0, v20.19.0 to support require(esm)
  • ⚠️ Preserve normal quotes whenever possible (#​246)
  • ⚠️ Renamed the improved sorting order to strict (#​245)
  • ⚠️ Rename configs (#​244)
  • ⚠️ Renamed rule no-unregistered-classes to no-unknown-classes
  • ⚠️ Renamed rule sort-classes to enforce-consistent-class-order
  • ⚠️ Renamed rule multiline to enforce-consistent-line-wrapping
  • ⚠️ Options for better-tailwindcss/enforce-consistent-variable-syntax have been renamed to shorthand and variable.
  • ⚠️ Function getDefaultIgnoredUnregisteredClasses() has been removed.
  • ⚠️ The default for enforce-consistent-important-position is now always recommended. If you are on tailwindcss v3 need to manually set it to legacy to keep it working for tailwindcss v3.
  • ⚠️ Removed rule regex matchers
❤️ Contributors

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

@renovate renovate bot force-pushed the renovate/eslint-plugin-better-tailwindcss-4.x branch from f98c7b4 to 25177b0 Compare January 15, 2026 01:38
@renovate renovate bot force-pushed the renovate/eslint-plugin-better-tailwindcss-4.x branch from 25177b0 to ff9cc85 Compare January 19, 2026 08:49
@renovate renovate bot force-pushed the renovate/eslint-plugin-better-tailwindcss-4.x branch from ff9cc85 to 42c907a Compare January 25, 2026 20:23
@C4illin C4illin merged commit 18f2aa8 into main Jan 26, 2026
9 checks passed
@C4illin C4illin deleted the renovate/eslint-plugin-better-tailwindcss-4.x branch January 26, 2026 18:44
evil9369 pushed a commit to pi-docket/ConvertX-CN that referenced this pull request Feb 1, 2026
Merged changes:
- chore: update eslint config (C4illin#521)
- PDF to DOCX using LibreOffice, fixes C4illin#425 (C4illin#510)
- chore: update deps (C4illin#522)
- chore(deps): eslint-plugin-better-tailwindcss to v4 (C4illin#506)

Conflict resolution:
- package.json: keep our @sinclair/typebox, upgrade eslint-plugin to v4
- eslint.config.ts: keep our extended ignores
- libreoffice.ts: keep our PDF import pipeline (more complete)
- root.tsx, history.tsx: keep our Chinese localized version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant